home *** CD-ROM | disk | FTP | other *** search
/ Loadstar Extras 3 / Ex3side2.d64 / input dir source < prev    next >
Text File  |  2022-08-28  |  3KB  |  270 lines

  1.  
  2. open =$ffc0
  3. readst =$ffb7
  4. setlfs =$ffba
  5. setnam =$ffbd
  6. load =$ffd5
  7. getin =$ffe4
  8. clrchn =$ffcc
  9. close =$ffc3   ;a
  10. chrin =$ffcf
  11. chkout =$ffc9  ;x
  12. chkin =$ffc6   ;x
  13. plot =$fff0
  14. chrout =$ffd2
  15. color'pointer =243
  16. screen'line'pointer =209
  17. print'number =$bdcd ;x,a
  18. clear'line =59903
  19. error'string =$200
  20. buffer =$200
  21.  
  22. .org $c000
  23. .mem
  24. ;obj "input dir c000"
  25. ;dis
  26. lda #0
  27. sta sub'low
  28. sta sub'high
  29.  
  30. jsr get'string
  31. pha
  32. tya
  33. pha
  34. txa
  35. pha
  36. jsr get'number
  37. sty device
  38. jsr get'number
  39. sty sub'low
  40. sta sub'high
  41. jsr open'error
  42. pla
  43. tax
  44. pla
  45. tay
  46. pla
  47. jsr setnam
  48. lda #2
  49. jsr close
  50. lda #2
  51. ldx device
  52. ldy #0
  53. jsr setlfs
  54. jsr open
  55. jsr clrchn
  56. jsr read'open'error
  57. jsr clrchn
  58. ldx #2
  59. jsr chkin
  60. lda buffer
  61. cmp "0"
  62. beq get'name
  63. jsr clear'buffer
  64. lda #15
  65. jsr close
  66. lda #2
  67. jsr close
  68. jmp clrchn
  69.  
  70. get'name ldy #6
  71. - jsr getin
  72. dey
  73. bpl -
  74.  
  75.  
  76. ldy #0
  77. - jsr getin
  78. sta buffer,y
  79. iny
  80. cpy #24
  81. bne -
  82. sty wlength
  83. jsr make'fstring
  84. jsr find'next
  85.  
  86. get'line ldy #0
  87. sty wlength
  88. - jsr getin
  89. cmp #34
  90. bne +
  91.  
  92. - jsr make'fstring
  93. jsr find'next
  94. jsr readst
  95. and #64
  96. beq get'line
  97. jmp quit
  98.  
  99. + sta buffer,y
  100. iny
  101. inc wlength
  102. cpy #87
  103. bcc +
  104. bcs -
  105.  
  106. + jsr readst
  107. and #64
  108. beq --
  109. bne -
  110.  
  111. quit lda sub'low
  112. ldx sub'high
  113. sta 251
  114. stx 252
  115. lda #2
  116. jsr close
  117. jsr clrchn
  118. jsr read'open'error
  119. jsr clrchn
  120. jsr clear'buffer
  121. lda #15
  122. jmp close
  123.  
  124. rts
  125.  
  126. open'error lda #15
  127. jsr close
  128.  
  129. lda #15
  130. ldx device
  131. ldy #15
  132. jsr setlfs
  133. lda #3
  134. ldy >initialize'name
  135. ldx <initialize'name
  136. jsr setnam
  137. jmp open
  138.  
  139. ;***** get string from BASIC ****
  140.  
  141. get'string jsr $aefd
  142. jsr $ad9e
  143. jsr $b6a3
  144. ldx $22
  145. ldy $23
  146. rts
  147.  
  148. get'number jsr $aefd
  149. jsr $ad8a
  150. jmp $b7f7
  151.  
  152. read'error jsr open'error
  153. read'open'error ldx #15
  154. jsr chkin
  155. ldy #0
  156.  
  157. - jsr getin
  158. sta error'string,y
  159. iny
  160. cmp #13
  161. bne -
  162. iny
  163. sty elength
  164. jsr clrchn
  165.  
  166. ldx <error'name
  167. ldy >error'name
  168. jsr locvar
  169. lda <elength
  170. ldy >elength
  171. jmp set'string
  172.  
  173. locvar lda $7a
  174. pha
  175. lda $7b
  176. pha
  177. stx $7a
  178. sty $7b
  179. jsr $b08b
  180. sta $49
  181. sty $4a
  182. pla
  183. sta $7b
  184. pla
  185. sta $7a
  186. rts
  187.  
  188. set'string sta $64
  189. sty $65
  190. jmp $aa52
  191.  
  192. make'fstring ldy #3
  193. lda " "
  194. - sta string'name+3,y
  195. dey
  196. bpl -
  197.  
  198. lda sub'high
  199. ldx sub'low
  200. sta $62
  201. stx $63
  202. ldx #$90
  203. sec
  204. jsr $bc49
  205. jsr $bddf
  206.  
  207. sta 251
  208. sty 252
  209.  
  210. ldy #0
  211.  
  212. - lda (251),y
  213. beq +
  214. sta string'name+3,y
  215. iny
  216. cpy #4
  217. bcc -
  218.  
  219. + ldx <string'name
  220. ldy >string'name
  221. jsr locvar
  222. lda <wlength
  223. ldy >wlength
  224. jsr set'string
  225. inc sub'low
  226. bne clear'buffer
  227. inc sub'high
  228.  
  229. clear'buffer ldy #79
  230. lda #0
  231. - sta buffer,y
  232. dey
  233. bpl -
  234. rts
  235.  
  236. find'next jsr getin
  237. bne find'next
  238. ldy #3
  239. - jsr getin
  240. dey
  241. bpl -
  242.  
  243. find'quote jsr getin
  244. sta temp
  245. jsr readst
  246. and #64
  247. bne +
  248.  
  249. lda temp
  250. cmp #34
  251. bne find'quote
  252.  
  253. + rts
  254.  
  255. string'name .asc "f$(0000)":.byt 0
  256. wlength .byt 0
  257. .word buffer
  258.  
  259. error'name .asc "e$":.byt 0
  260. elength .byt 0
  261. .word error'string
  262.  
  263. string'length .byt 0
  264. initialize'name .asc "i0:"
  265. device .byt 8
  266. error'flag .byt 0
  267. temp .byt 0
  268. sub'low .byt 0
  269. sub'high .byt 0
  270.